home *** CD-ROM | disk | FTP | other *** search
/ Wonky Flux Batch 2019 02 / Wonky_Flux_Batch_2019-02.zip / Wonky Flux Batch 2019-02 / 105 - PROSEL - 3.3.5 S2.B.dsk / MODIFY.BACKUP.bas < prev    next >
BASIC Source File  |  2019-02-17  |  5KB  |  122 lines

  1. 1  REM ProSel Backup/Restore editor
  2. 2  REM 
  3. 3  REM   Glen E. Bredon  11/14/87
  4. 4  REM 
  5. 10  PRINT  CHR$(4)"PR#3": PRINT  CHR$(12)
  6. 20  ONERR  GOTO 1000
  7. 30  PRINT  CHR$(4)"BLOAD"F$"RDLINE,TCMD,A$4000": CALL 4 *4096
  8. 40  POKE 216,0
  9. 50  LOMEM: 6 *4096
  10. 60 MO$ =  CHR$(27) + CHR$(15):MF$ =  CHR$(24) + CHR$(14)
  11. 70  FOR I = 1 TO 8:DI$ = DI$ +"/////": NEXT I:DI$ = DI$ +"]"
  12. 80 FI = 0: PRINT : HOME : HTAB 30: PRINT "Backup/Restore editor"
  13. 90  HTAB 30: PRINT MO$"LLLLLLLLLLLLLLLLLLLLL"MF$
  14. 100  PRINT "This program sets modifiable parameters in the ProSel Backup/Restore programs."
  15. 110  PRINT : PRINT  TAB( 30)"1. Modify BACKUP."
  16. 120  PRINT  TAB( 30)"2. Modify RESTORE."
  17. 130  PRINT  TAB( 30)"3. Exit program."
  18. 140  PRINT : PRINT  TAB( 30)"Select: [";
  19. 150  PRINT  CHR$(4)"RDLINE #]":A$
  20. 160  GET Q$: IF Q$ < > CHR$(13)  THEN 180
  21. 170 A =  VAL(A$): IF A >0  AND A <4  THEN 190
  22. 180  PRINT  CHR$(8) CHR$(8);: GOTO 150
  23. 190  IF A = 3  THEN  NEW : END 
  24. 200 F$ = "BACKUP": IF A = 2  THEN F$ = "RESTORE"
  25. 210  ONERR  GOTO 1100
  26. 220  PRINT  CHR$(4)"BLOAD"F$",A$2000,TSYS"
  27. 230  POKE 216,0: POKE 222,0: POKE 48655,0
  28. 240 AD = 8192:ST = AD +6:NX = AD +72:VL = NX +66:OD = AD +204: IF A = 2  THEN OD = VL
  29. 250 BU = OD +1:SL = BU +1
  30. 260 T = OD: GOSUB 1300
  31. 270 T = BU: GOSUB 1300
  32. 280 T = SL: GOSUB 1300
  33. 290  POKE ST,0: POKE NX,0:AD = VL: IF A = 1  THEN A$ = "/RAM": GOSUB 3000
  34. 300  POKE OD,128: POKE BU,128: POKE SL,6 *16
  35. 310  IF A = 2  THEN  POKE BU,6 *16: POKE SL,7 *16
  36. 320  PRINT : PRINT : PRINT "Do you want to set the STARTUP - this will make "F$" dedicated to"
  37. 330  PRINT "use for "F$;: IF A = 1  THEN  PRINT " to";: GOTO 350
  38. 340  PRINT " from";
  39. 350  PRINT " a FILE only.  You may prefer to set the STARTUP in the"
  40. 360  PRINT "application specification in ProSel instead.  [";
  41. 370  GOSUB 2000: IF A$ = "N"  THEN 430
  42. 380  PRINT : PRINT "Give the backup file name: [";
  43. 390  PRINT  CHR$(4)"RDLINE A^^^^^^^^^^^^^^]":A$
  44. 400  GET Q$: IF Q$ =  CHR$(27)  THEN 80
  45. 410  IF  LEN(A$) = 16  THEN A$ =  LEFT$(A$,15)
  46. 420 AD = ST: GOSUB 3000:FI = 1: PRINT 
  47. 430  PRINT : PRINT "Do you want another program to run automatically after "F$"? [";
  48. 440  GOSUB 2000: IF A$ = "N"  THEN 490
  49. 450  PRINT : PRINT "Pathname of the program to run: [";
  50. 460  GOSUB 820
  51. 470  IF A$ = ""  THEN  PRINT : GOTO 490
  52. 480 AD = NX: GOSUB 3000: PRINT 
  53. 490  IF A = 2  THEN 550
  54. 500  PRINT : PRINT "Name of RAM volume to backup (if any) [";:RM$ = "/RAM"
  55. 510  PRINT  CHR$(4)"RDLINE ///////////////]":A$,RM$
  56. 520  GET Q$: IF Q$ =  CHR$(27)  THEN 80
  57. 530  IF  LEN(A$) = 16  THEN A$ =  LEFT$(A$,15)
  58. 540 AD = VL: GOSUB 3000: PRINT 
  59. 550  IF FI  THEN 730
  60. 560  PRINT : PRINT "Give the 1st slot/drive for the backup disks: [";:S$ = "6/1"
  61. 570  GOSUB 4000:S1 = DV:S$ =  STR$(S) +"/" + STR$(3 -D)
  62. 580  PRINT : PRINT : PRINT "Give the 2nd slot/drive for the backup disks: [";:
  63. 590  GOSUB 4000:S2 = DV: IF A = 1  THEN  POKE SL,S1
  64. 600  IF A = 2  THEN  POKE BU,S1
  65. 610 EO = 0: FOR BIT = 1 TO 8
  66. 620 C1 = S1 -2 * INT(S1/2):C2 = S2 -2 * INT(S2/2)
  67. 630 EO = EO/2
  68. 640  IF C1 +C2 = 1  THEN EO = EO +128
  69. 650 S1 = (S1 -C1)/2:S2 = (S2 -C2)/2: NEXT BIT
  70. 660  POKE OD,EO
  71. 670  IF A = 2  THEN 710
  72. 680  PRINT : PRINT : PRINT "Do you want backup bits cleared? [";
  73. 690  GOSUB 2000:B = 128 *(A$ = "N"): POKE BU,B
  74. 700  GOTO 730
  75. 710  PRINT : PRINT : PRINT "Default slot/drive to be backed up: [";:S$ = "7/1"
  76. 720  GOSUB 4000: POKE SL,DV
  77. 730  ONERR  GOTO 760
  78. 740  PRINT  CHR$(4)"BSAVE"F$",TSYS,A$2000"
  79. 750  GOTO 80
  80. 760  POKE 216,0: IF  PEEK(222) < >10  THEN 1200
  81. 770  PRINT : PRINT : PRINT F$" is locked.  Save the revised file anyway? [";
  82. 780  GOSUB 2000: PRINT : IF A$ = "N"  THEN  NEW : END 
  83. 790  ONERR  GOTO 1200
  84. 800  PRINT  CHR$(4)"UNLOCK"F$
  85. 810  GOTO 730
  86. 820  PRINT  CHR$(4)"RDLINE"DI$:A$
  87. 830  GET Q$: IF Q$ =  CHR$(27)  THEN  POP : GOTO 80
  88. 840  IF  LEN(A$) = 41  THEN A$ =  LEFT$(A$,40)
  89. 850  RETURN 
  90. 1000  ONERR  GOTO 1020
  91. 1010 F$ = "/FLOPPY/COMMANDS/": GOTO 30
  92. 1020  ONERR  GOTO 1040
  93. 1030 F$ = "/PROSEL/COMMANDS/": GOTO 30
  94. 1040  POKE 216,0
  95. 1050  PRINT : PRINT 
  96. 1060  PRINT "The RDLINE file cannot be found.  You must have the PROSEL installation disk"
  97. 1070  PRINT : PRINT "(/FLOPPY/ or /PROSEL/) in a disk drive or the RDLINE file in the prefix"
  98. 1080  PRINT : PRINT "directory to run this program."
  99. 1090  NEW : END 
  100. 1100  PRINT : PRINT 
  101. 1110  PRINT "The "F$" file was not found.";: IF AB  THEN 1320
  102. 1120 AB = 1: PRINT "  What directory is it in?": PRINT : PRINT "[";
  103. 1130  GOSUB 820: IF A$ = ""  THEN  PRINT : GOTO 1320
  104. 1140  PRINT  CHR$(4)"PREFIX"A$
  105. 1150  GOTO 220
  106. 1200  PRINT : PRINT : POKE 216,0
  107. 1210  POKE 700,173: POKE 701,15: POKE 702,190: POKE 703,76: POKE 704,12: POKE 705,190: CALL 700
  108. 1220  NEW : END 
  109. 1300 T =  PEEK(T): IF T = 16 * INT(T/16)  THEN  RETURN 
  110. 1310  PRINT : PRINT : PRINT "This version of "F$" is not compatible with this program.";
  111. 1320  PRINT "  Aborting.": NEW : END 
  112. 2000 DF$ = "N": PRINT  CHR$(4)"RDLINE B]":A$,DF$
  113. 2010  GET Q$: IF Q$ < > CHR$(13)  THEN 2030
  114. 2020 A$ =  LEFT$(A$,1): IF A$ = "Y"  OR A$ = "N"  THEN  PRINT : RETURN 
  115. 2030  PRINT  CHR$(8) CHR$(8);: GOTO 2000
  116. 3000  POKE AD, LEN(A$): FOR I = 1 TO  LEN(A$): POKE AD +I, ASC( MID$ (A$,I,1)): NEXT I: RETURN 
  117. 4000  PRINT  CHR$(4)"RDLINE -~/-]":A$,S$
  118. 4010  GET Q$: IF Q$ < > CHR$(13)  THEN 4040
  119. 4020 S =  VAL( LEFT$(A$,1)):D =  VAL( MID$ (A$,3,1)): IF S <1  OR S >7  THEN 4040
  120. 4030  IF D = 1  OR D = 2  THEN 4050
  121. 4040  PRINT  CHR$(8) CHR$(8) CHR$(8) CHR$(8);: GOTO 4000
  122. 4050 DV = S *16 +128 *(D = 2): RETURN